package com.version1.diabeco.ui.wizard;

import com.version1.diabeco.ActivityMain;
import com.version1.diabeco.R;
import com.version1.diabeco.data.ApplicationDaoImpl;
import com.version1.diabeco.data.ajustes.medicamentos.MedicamentoDaoImpl;
import com.version1.diabeco.data.ajustes.perfilusuario.PerfilUsuarioDaoImpl;
import com.version1.diabeco.model.ajustes.medicamento.Medicamento;
import com.version1.diabeco.model.ajustes.perfilusuario.PerfilUsuario;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.res.Resources;
import android.view.View;
import android.widget.TextView;

public class ActivityWizardPaso8 extends Activity {
	private TextView textViewGlucosa, textViewPeso, textViewDistancia, textViewApodo,
					 textViewUmbralBajo, textViewUmbralAlto, textViewDiabetes, textViewSexo,
					 textViewMedicamento1, textViewMedicamento2, textViewPanico, textViewContacto;
	private SharedPreferences diabecoPrefs;
	private Context mContext;
	private Resources res;
	private PerfilUsuario nuevoPerfilUsuario;
	private Medicamento   nuevoMedicamento;
	private Medicamento   nuevoMedicamento2;
	private String contacto = "", numero = "", tipoTel = "", contactoFinal = "";
	private boolean checkPanico;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
		setContentView(R.layout.activity_wizard_paso8);
    
		boolean radio1, radio2;
		String apodo = "", sexo = "", tipoDiabetes = "";
		Float umbralb = 0F, umbrala = 0F;
		String medicamento = "", tipo = "", medicamentoFinal = "";
		
		
		nuevoPerfilUsuario = new PerfilUsuario();
		nuevoMedicamento   = new Medicamento();
		nuevoMedicamento2  = new Medicamento();
		res = getResources();
		
		//Obtenemos los elementos de la Pantalla
		textViewGlucosa 	 = (TextView)   findViewById(R.id.textViewGlucosa);
		textViewPeso  		 = (TextView)   findViewById(R.id.textViewPeso);
		textViewDistancia 	 = (TextView)   findViewById(R.id.textViewDistancia);
		textViewApodo		 = (TextView)   findViewById(R.id.textViewApodo);
		textViewUmbralBajo	 = (TextView)   findViewById(R.id.textViewUmbralBajo);
		textViewUmbralAlto	 = (TextView)   findViewById(R.id.textViewUmbralAlto);
		textViewDiabetes	 = (TextView)   findViewById(R.id.textViewDiabetes);
		textViewSexo		 = (TextView)   findViewById(R.id.textViewSexo);
		textViewMedicamento1 = (TextView)   findViewById(R.id.textViewMedicamento1);
		textViewMedicamento2 = (TextView)   findViewById(R.id.textViewMedicamento2);
		textViewPanico		 = (TextView)   findViewById(R.id.textViewPanico);
		textViewContacto     = (TextView)   findViewById(R.id.textViewContacto);
				
        
        
        //Obtenemos las Preference en modo privado del Wizard Paso2
        mContext = this.getApplicationContext();
        diabecoPrefs = mContext.getSharedPreferences("DiabeCoWizardPaso2", Context.MODE_PRIVATE);
        radio1 = diabecoPrefs.getBoolean("rbUmGlucosa1", false);
        radio2 = diabecoPrefs.getBoolean("rbUmGlucosa2", false);
        if (radio1) {
        	textViewGlucosa.setText(res.getString(R.string.rb_um_glucosa1));
        	nuevoPerfilUsuario.setUmGlucosa(res.getString(R.string.rb_um_glucosa1));
        } else {
			textViewGlucosa.setText(res.getString(R.string.rb_um_glucosa2));
			nuevoPerfilUsuario.setUmGlucosa(res.getString(R.string.rb_um_glucosa2));
		}
        
        
        //Obtenemos las Preference en modo privado del Wizard Paso3
        diabecoPrefs = mContext.getSharedPreferences("DiabeCoWizardPaso3", Context.MODE_PRIVATE);
        radio1 = diabecoPrefs.getBoolean("rbUmPeso1", false);
        radio2 = diabecoPrefs.getBoolean("rbUmPeso2", false);
        if (radio1) {
        	textViewPeso.setText(res.getString(R.string.rb_um_peso1));
        	nuevoPerfilUsuario.setUmPeso(res.getString(R.string.rb_um_peso1));
		} else {
			textViewPeso.setText(res.getString(R.string.rb_um_peso2));
			nuevoPerfilUsuario.setUmPeso(res.getString(R.string.rb_um_peso2));
		}
        
        //Obtenemos las Preference en modo privado del Wizard Paso4
        diabecoPrefs = mContext.getSharedPreferences("DiabeCoWizardPaso4", Context.MODE_PRIVATE);
        radio1 = diabecoPrefs.getBoolean("rbUmDistancia1", false);
        radio2 = diabecoPrefs.getBoolean("rbUmDistancia2", false);
        if (radio1) {
        	textViewDistancia.setText(res.getString(R.string.rb_um_distancia1));
            nuevoPerfilUsuario.setUmAltura(res.getString(R.string.rb_um_distancia1));
        } else {
			textViewDistancia.setText(res.getString(R.string.rb_um_distancia2));
			nuevoPerfilUsuario.setUmAltura(res.getString(R.string.rb_um_distancia2));
		}        
        
        
        //Obtenemos las Preference en modo privado del Wizard Paso5
        diabecoPrefs = mContext.getSharedPreferences("DiabeCoWizardPaso5", Context.MODE_PRIVATE);
        apodo = diabecoPrefs.getString("editTextApodo", "");
        umbralb = diabecoPrefs.getFloat("editTextUmbralBajo", 0F);
        umbrala = diabecoPrefs.getFloat("editTextUmbralAlto", 0F);
        sexo = diabecoPrefs.getString("spinnerSexo", "");
        tipoDiabetes = diabecoPrefs.getString("spinnerTipoDiabetes", "");
        
        textViewApodo.setText(apodo);
        nuevoPerfilUsuario.setId(apodo);
        nuevoMedicamento.setAlias(apodo);
        nuevoMedicamento2.setAlias(apodo);
        
        textViewUmbralBajo.setText(umbralb.toString());
        nuevoPerfilUsuario.setUmbralBajo(umbralb);
        
        textViewUmbralAlto.setText(umbrala.toString());
        nuevoPerfilUsuario.setUmbralAlto(umbrala);
        
        textViewSexo.setText(sexo);
        nuevoPerfilUsuario.setSexo(sexo);
        
        textViewDiabetes.setText(tipoDiabetes);
        nuevoPerfilUsuario.setTipoDiabetes(tipoDiabetes);
		
		
        
        //Obtenemos las Preference en modo privado del Wizard Paso6
        diabecoPrefs = mContext.getSharedPreferences("DiabeCoWizardPaso6", Context.MODE_PRIVATE);
        medicamento = diabecoPrefs.getString("editTextNombreMedicamento", "");
        if (!medicamento.isEmpty()) {
    		tipo = diabecoPrefs.getString("spinnerTipoMedicamento", "");
            medicamentoFinal = medicamento.concat(" ").concat("(").concat(tipo).concat(")");;  
            textViewMedicamento1.setText(medicamentoFinal);
    		nuevoMedicamento.setDescripcion(medicamento);
    		nuevoMedicamento.setTipo(tipo);		
    		if (ActivityMain.TIPO_INSULINA.equals(tipo)) { 
    			nuevoMedicamento.setIconResourceId(R.drawable.ic_insulina);
    		} else {
    			nuevoMedicamento.setIconResourceId(R.drawable.ic_pastilla);
    		}        
        }

        
        medicamento = diabecoPrefs.getString("editTextNombreMedicamento2", "");
        if (!medicamento.isEmpty()) {
        	tipo = diabecoPrefs.getString("spinnerTipoMedicamento2", "");
            medicamentoFinal = medicamento.concat(" ").concat("(").concat(tipo).concat(")"); 
            textViewMedicamento2.setText(medicamentoFinal);
            nuevoMedicamento2.setDescripcion(medicamento);
            nuevoMedicamento2.setTipo(tipo);		
    		if (ActivityMain.TIPO_INSULINA.equals(tipo)) { 
    			nuevoMedicamento2.setIconResourceId(R.drawable.ic_insulina);
    		} else {
    			nuevoMedicamento2.setIconResourceId(R.drawable.ic_pastilla);
    		}        
		}
        
    	
        //Obtenemos las Preference en modo privado del Wizard Paso7
        diabecoPrefs = mContext.getSharedPreferences("DiabeCoWizardPaso7", Context.MODE_PRIVATE);
        checkPanico = diabecoPrefs.getBoolean("checkBoxPanico", false);
        if (checkPanico == true) {
        	textViewPanico.setText(res.getString(R.string.txt_activo));
            contacto = diabecoPrefs.getString("textViewContacto", "");
            numero = diabecoPrefs.getString("textViewTelefono", "");
            tipoTel = diabecoPrefs.getString("textViewTipoTel", "");
            contactoFinal = contacto.concat("  ").concat(numero);
            textViewContacto.setText(contactoFinal);
        }else {
        	textViewPanico.setText(res.getString(R.string.txt_desactivado));
        }

	}


	@Override
	public void onBackPressed() {
		Intent intent = new Intent();
		setResult(ActivityMain.RESULT_CODE_WIZARD_BTN_PREVIO, intent);
		super.onBackPressed();
	}
	
	/** Se llama al hacer click en "Terminar" */
    public void clickBtnTerminar(View view) {
        //Grabamos el Perfil del Usuario
    	PerfilUsuarioDaoImpl.getInstance(this).save(nuevoPerfilUsuario, 1);
    	
    	//Grabamos los medicamentos
		MedicamentoDaoImpl.getInstance(this).save(nuevoMedicamento);
		if (nuevoMedicamento2.getDescripcion() != null) {
			MedicamentoDaoImpl.getInstance(this).save(nuevoMedicamento2);	
		}
		
    	//Grabamos el Boton de Panico
        Context mContext = this.getApplicationContext();
        SharedPreferences diabecoPref = mContext.getSharedPreferences("DiabeCoBotonPanico", Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = diabecoPref.edit();
        edit.putBoolean("checkBoxPanico", checkPanico);
        edit.putString("textViewContacto", contacto);
        edit.putString("textViewTipoTel", tipoTel);
        edit.putString("textViewTelefono", numero);
        edit.commit();
        
        //Compartimos el Telefono con el widget
        SharedPreferences diabecoPrefsAux = mContext.getSharedPreferences("DiabeCoWidget", Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editAux = diabecoPrefsAux.edit();
        editAux.putString("textViewTelefono", numero);
        editAux.commit();
        
        //Cargamos la base de alimentos
        ApplicationDaoImpl.getInstance(this).addFixedData();
        
		//Indicamos que el Wizard se Corrio Completamente
		setRunned();
		Intent intent = new Intent();
		setResult(RESULT_OK, intent);
		this.finish();
    }

    
    /** Se llama al hacer click en "Previo" */
    public void clickBtnPrevio(View view) {
		Intent intent = new Intent();
		setResult(ActivityMain.RESULT_CODE_WIZARD_BTN_PREVIO, intent);		
	    this.finish();
    }

	public void setRunned() {
		diabecoPrefs = mContext.getSharedPreferences("DiabeCo", Context.MODE_PRIVATE);		
		SharedPreferences.Editor edit = diabecoPrefs.edit();
		edit.putBoolean("FirstRun", false);
		edit.commit();
	}		    
}
